
program chapter9_22
    dimension l(40,40)
    read (*, *) n

    do i=1,n
        do j=1,n
            l(i,j)=0
        end do
    end do

    i=1
    j=n/2+1
    l(i,j)=1
    nn=n*n
    do i1=2,nn
        i=i-1
        j=j+1
        if (i .ge. 1 .and. j .le. n) then
            if(l(i,j) .eq. 0) then
                l(i,j)=i1
            else
                i=i+2
                j=j-1
                l(i,j)=i1
            end if
        elseif (i .ge. 1 .and. j .gt. n) then
            j=1
            l(i,j)=i1
        elseif (i .lt. 1 .and. j .le. n) then
            i=n !i=5,j=4
            l(i,j)=i1
        elseif (i .lt. 1 .and. j .gt. n) then
            i=i+2
            j=j-1
            l(i,j)=i1
        end if
    end do

    do i=1,n
        write (*,30) (l(i,j), j=1,n)
30    format(1x,20(i2,2x))
    end do

end program

